g_return_if_fail (GDK_IS_DISPLAY (display));
if (!display->closed)
- wl_display_iterate(GDK_DISPLAY_WAYLAND (display)->wl_display,
- WL_DISPLAY_WRITABLE);
+ _gdk_wayland_display_flush (display,
+ GDK_DISPLAY_WAYLAND (display)->event_source);
}
static gboolean
return source;
}
+void
+_gdk_wayland_display_flush (GdkDisplay *display, GSource *source)
+{
+ GdkWaylandEventSource *wayland_source = (GdkWaylandEventSource *) source;
+
+ while (wayland_source->mask & WL_DISPLAY_WRITABLE)
+ wl_display_iterate(GDK_DISPLAY_WAYLAND (display)->wl_display,
+ WL_DISPLAY_WRITABLE);
+}
+
void
_gdk_wayland_display_queue_events (GdkDisplay *display)
{
void _gdk_wayland_display_deliver_event (GdkDisplay *display, GdkEvent *event);
GSource *_gdk_wayland_display_event_source_new (GdkDisplay *display);
void _gdk_wayland_display_queue_events (GdkDisplay *display);
+void _gdk_wayland_display_flush (GdkDisplay *display, GSource *source);
GdkAppLaunchContext *_gdk_wayland_display_get_app_launch_context (GdkDisplay *display);